.text
.global _start

_start:
    # you can find more syscall in
    # /usr/include/asm/unistd_64.h
    movq    $1, %rax   # syscall[write]
    movq    $1, %rdi   # (fd = 1,
    movq    $msg, %rsi # buf = [msg],
    movq    $24, %rdx  # size = 24)
    syscall

    movq    $60, %rax  # syscall[_exit]
    movq    $0, %rdi   # (status = 0)
    syscall

.data
msg: .ascii "\033[31mhello, world\033[0m\n"
